#ifndef __AT24CXX_H
#define __AT24CXX_H
#include "i2c.h"
#include "gpio.h"
#include "common_func.h"
#include "core_time.h"

//EEPROM 容量-1 单位：字节数
#define AT24C01		127
#define AT24C02		255
#define AT24C04		511
#define AT24C08		1023
#define AT24C16		2047
#define AT24C32		4095
#define AT24C64	    8191
#define AT24C128	16383
#define AT24C256	32767  
#define AT24C512	65535

//实测 AT24C02 和 AT24C64 运行正常，其他器件待测
#define EE_TYPE AT24C64
						
U8 AT24CXX_ReadOneByte(U16 ReadAddr);							//指定地址读取一个字节
void AT24CXX_WriteOneByte(U16 WriteAddr,U8 DataToWrite);		//指定地址写入一个字节
void AT24CXX_WriteLenByte(U16 WriteAddr,U32 DataToWrite,U8 Len);//指定地址开始写入指定长度的数据
U32 AT24CXX_ReadLenByte(U16 ReadAddr,U8 Len);					//指定地址开始读取指定长度数据
void AT24CXX_Write(U16 WriteAddr,U8 *pBuffer,U16 NumToWrite);	//从指定地址开始写入指定长度的数据
void AT24CXX_Read(U16 ReadAddr,U8 *pBuffer,U16 NuUmToRead);   	//从指定地址开始读出指定长度的数据
void AT24CXX_Init(void);                                        //初始化IIC

#endif